1. Field of the Invention
The invention relates generally to providing remote printing services to client devices, and more specifically, for providing device specific print options to remote printing services for printing devices.
2. Discussion of Related Art
In a printing environment, various print job options exist when printing a document on a printing device. For example, a user may select various print job options such as duplexing, stapling, sorting, and single or double sided printing, etc., for a document to be printed. After the user selects the various print job options, a print job is generated based on the document to be printed and the various user selected print job options. The generated print job is subsequently submitted to a printing device for printing on some form of printable media.
Typically, the available print options for a specific printing device are set up when a printing device is installed on a client device (i.e., a driver is installed for the printing device and a print capabilities file is stored on the client). For example, when a print driver is installed on a computer, various print options for the printing device may be specified by a user, such as what paper trays are available, the size of the paper in each tray, the amount of memory within the printing device, etc. Also, the print capabilities file of the printing device may be stored on the computer for later use. The print capabilities file allows the client device to consistently identify the print capabilities of a specific printing device.
When a print job for the printing device is subsequently generated using the printer driver and the print capabilities file, the various print options for the print job are converted into device specific commands for the printing device. In many cases, the device specific commands are unique to a particular vender or model of the printing device.
Problems may arise, however, when print jobs are generated for print devices and the print capabilities for the target printer are not known. For example, various web print services exist which allow client devices to transfer the process of print job generation to a server operating the web print services. Such services may be utilized, for example, when the client device either lacks the rendering capability for the print job or is simply too limited in performance for rendering the print job on the client device in a reasonable amount of time. In such cases, the server executing a web print service renders the print job for the client. In some cases, however, the web print service may not consistently or correctly identify the complete print capabilities of a specific target printing device for the print job. Problems may arise when the server executing the web print service does not have a direct connection to the printing device to obtain the actual, complete print capabilities of a particular printing device. In such cases, the web print service may only be able to offer a generic set of print options available to or common to an entire family of print devices, thus limiting the functionality of the web print service when generating a print job.
Thus it is an ongoing challenge to consistently obtain and utilize print capabilities of a printing device across a wide variety of connection topologies.